import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    counter: 0,
  },
  getters: {
    doubleCounter(state) {
      return state.counter * 2
    },
  },
  mutations: {
    // state哪来的？
    add(state) {
      state.counter++
      // this.state.counter ? ok
    },
  },
  actions: {
    // 做一个异步的修改
    // 解构上下文
    // actions的参数1是一个上下文
    // this本来指向全局上下文，但是因为有个定时器所以指向window但是因为class所以是undefined
    add({ commit }) {
      setTimeout(() => {
        commit('add')
      }, 1000)
    },
  },
  modules: {},
})
